package com.sftz.modules.minapp.courseCollection.module;

import java.text.ParseException;
import java.util.Map;

import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;

import com.sftz.assets.entities.CourseCollectTabEntity;
import com.sftz.framework.rersult.MobileResult;
import com.sftz.modules.minapp.courseCollection.form.CollectForm;
import com.sftz.modules.minapp.courseCollection.service.CollectService;

/**
 * 收藏课程
 * @author   王宏伟
 * @Date	 2018年12月11日
 */
@IocBean
@At("/wx/courseCollection/")
public class CollectModule {
	@Inject
	private CollectService collectService;

	/**
	 * 收藏课程列表
	 * @author	王宏伟
	 * @Date	2018年12月18日
	 */
	@At
	@Ok("json")
	public Map<String, Object> collectList(@Param("..") final CollectForm form) {
		return collectService.courseCollectList(form);
	}

	/**
	 * 取消收藏课程
	 * @author	王宏伟
	 * @Date	2018年12月18日
	 */
	@At
	@Ok("json")
	public Map<String, Object> cancelCollection(@Param("..") final CollectForm form) {
		try {
			return MobileResult.success(null, collectService.cancelCollection(form));
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return MobileResult.error(null, null);
	}

	/****************************以下是收藏使用的接口******************************/

	/**
	 * 添加、取消 收藏:接参	courseId
	 * @author	王宏伟
	 * @Date	2018年12月18日
	 */
	@At
	@Ok("json")
	public Object collection(@Param("..") final CollectForm form) {
		try {
			collectService.collection(form);
			return MobileResult.success(null, null);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return MobileResult.error(null, null);
	}

	/**
	 * 接口：判断课程收藏状态
	 * @author	王宏伟
	 * @Date	2018年12月18日
	 */
	@At
	@Ok("json")
	public Object collectionStatus(@Param("..") final CollectForm form) {
		CourseCollectTabEntity collectionStatus = collectService.collectionStatus(form);
		return MobileResult.success(null, collectionStatus);
	}

}
